package io.BufferedStream;

import java.io.*;

public class TEST2 {
    public static void main(String[] args) throws IOException {
        /*
        实现一个验证程序执行次数的小程序
        程序运行演示如下：
        第一次运行控制台显示输出：欢迎使用本软件，第一次使用免费，您还有2次使用机会
        第一次运行控制台显示输出：欢迎使用本软件，第二次使用免费，您还有2次使用机会
        第一次运行控制台显示输出：欢迎使用本软件，第三次使用免费，您还有2次使用机会
        第四次及以后运行控制台输出：本软件只能免费试用三次，欢迎您注册会员后继续使用
         */
//        思路一：计数器 count=0;但是不行，count运行在内存当中，每次关闭都会使count重新赋值为0
//        思路一续写：将count对应的数字保存在本地文件之中

//        1.把文件中的数字读取到内存中
//        思考，是使用FileReader还是BufferedReader：BufferedReader
//        理由：现在这里是三次，但如果是100,10000，等很多次，对于FileReader一次只读取一个文件，速度太慢
        BufferedReader br=new BufferedReader(new FileReader("count.txt"));
        String line=br.readLine();//一次读取一行数据，同时，读取到的数据是字符串的形式
        int count = Integer.parseInt(line);//对字符串强转，获得真正的数字（次数）
        count++;
//        2.对文件中的数字进行读取，如果文件数字<3那么继续进行,若文件数字大于3，那么就开始提示
            if (count<=3){
                System.out.println("欢迎使用本软件，第"+count+"次使用免费，您还有"+(3-count)+"次使用机会");
            }else {
                System.out.println("本软件只能免费试用三次，欢迎您注册会员后继续使用");
            }
//         3.将自增之后的count写入文本文件中
        BufferedWriter bw=new BufferedWriter(new FileWriter("count.txt"));
            bw.write(count+"");//将int类型的数字变为字符串即count+""在输出。否则count对应的就是字符，例如97对应的是a
        bw.close();
    }
}
